Environmental matching techniques

ABSTRACT

A method includes receiving raw machine data; determining topographic attributes and underlying environmental characteristics; encoding the respective topographic attributes and the underlying environmental characteristics in hexagrid data structures; and storing the hexagrid data structures in a memory. A computing system includes a processor; and a memory storing instructions that, when executed by the one or more processors, cause the computing system to: receive raw machine data; determine topographic attributes and underlying environmental characteristics; encode the respective topographic attributes and the underlying environmental characteristics in hexagrid data structures; and store the hexagrid data structures in the memory. A non-transitory computer readable medium containing program instructions that when executed, cause a computer to: receive raw machine data; determine topographic attributes and underlying environmental characteristics; encode the respective topographic attributes and the underlying environmental characteristics in hexagrid data structures; and store the hexagrid data structures in a memory.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/103,836, entitled ENVIRONMENTAL MATCHING TECHNIQUES, filed on Nov.24, 2020, which is a continuation of U.S. patent application Ser. No.16/797,850, entitled METHODS AND SYSTEMS FOR ENVIRONMENTAL MATCHING,filed on Feb. 21, 2020, and hereby incorporated by reference in itsentirety.

FIELD OF THE DISCLOSURE

The present disclosure is generally directed to methods and systems forenvironmental matching, and more specifically, for identifying spatialenvironment matches for observations in a plurality of data setscollected via site-specific trials and/or crop management.

BACKGROUND

Conventional agricultural science techniques for analyzing a pluralityof plots of land (e.g., two or more agricultural fields) are lacking.For example, conventional techniques for analyzing the plurality ofplots of land include comparing a plurality of plots of land by drivingthe plurality of plots in strips, or rows, to collect machine datacorresponding to the plurality of plots. The conventional methodsinclude calculating a statistic (e.g., an average yield) for each strip.Such conventional techniques fall short. For example, the conventionalmethods merely calculate a strip-wise or field-wise statistic (e.g., anaverage yield of an entire field or row within a field), and do not takeinto account inter-strip, or inter-field, environmental variability interms of topography (e.g., elevation, slope curvature, soil wetnessindex (SWI)), soil physical and/or chemical properties, or any otherdistinguishing features. Collecting field-level data at a second orsub-second increment and calculating a mean is a crude and notinformative metric. Thus, field comparisons lack depth and are notuseful for analytic purposes.

Further, conventional techniques do now allow for rich spatial analysis.The conventional techniques cannot be used to compare sub-sectionswithin a field or a plurality of fields to determine spatial similarityor for other purposes. Improved techniques are needed.

BRIEF SUMMARY

In one aspect, a computer-implemented method for improved agriculturalfield information storage includes (i) receiving raw machine datacorresponding to a plurality of environments, each environment locatedwithin a respective agricultural field; (ii) determining, for each ofthe plurality of environments, respective topographic attributes andrespective underlying environmental characteristics by processing theraw machine data; (iii) encoding, for each of the plurality ofenvironments, the determined respective topographic attributes and therespective underlying environmental characteristics in one or morerespective hexagrid data structures; and (iv) storing the one or morerespective hexagrid data structures in one or more non-transitorycomputer-readable memories.

A computing system includes one or more processors; and one or morememories storing instructions that, when executed by the one or moreprocessors, cause the computing system to: (i) receive raw machine datacorresponding to a plurality of environments, each environment locatedwithin a respective agricultural field; (ii) determine, for each of theplurality of environments, respective topographic attributes andrespective underlying environmental characteristics by processing theraw machine data; (iii) encode, for each of the plurality ofenvironments, the determined respective topographic attributes and therespective underlying environmental characteristics in one or morerespective hexagrid data structures; and (iv) store the one or morerespective hexagrid data structures in the one or more memories.

A non-transitory computer readable medium containing programinstructions that when executed, cause a computer to: (i) receive rawmachine data corresponding to a plurality of environments, eachenvironment located within a respective agricultural field; (ii)determine, for each of the plurality of environments, respectivetopographic attributes and respective underlying environmentalcharacteristics by processing the raw machine data; (iii) encode, foreach of the plurality of environments, the determined respectivetopographic attributes and the respective underlying environmentalcharacteristics in one or more respective hexagrid data structures; and(iv) store the one or more respective hexagrid data structures in one ormore non-transitory computer-readable memories.

BRIEF DESCRIPTION OF THE DRAWINGS

The figures described below depict various aspects of the system andmethods disclosed therein. It should be understood that each figuredepicts one embodiment of a particular aspect of the disclosed systemand methods, and that each of the figures is intended to accord with apossible embodiment thereof. Further, wherever possible, the followingdescription refers to the reference numerals included in the followingfigures, in which features depicted in multiple figures are designatedwith consistent reference numerals.

FIG. 1 depicts an exemplary computing environment, according to anembodiment.

FIG. 2 depicts an exemplary environment of an agricultural fieldincluding an implement having one or more attachments, according to anembodiment.

FIG. 3 depicts an exemplary environment, according to an embodiment.

FIG. 4 depicts a product performance chart, according to an embodiment.

FIG. 5 depicts an exemplary graphical user interface including a fieldof spatial points, according to an embodiment.

FIG. 6 depicts an exemplary graphical user interface including a fieldthat corresponds to the field depicted in FIG. 5, according to anembodiment.

FIG. 7 depicts an exemplary environment that includes a geography,according to an embodiment.

FIG. 8 depicts an exemplary environment that includes a geography,according to an embodiment.

FIG. 9 depicts a flow diagram of an example method for performingenvironmental matching.

The figures depict preferred embodiments for purposes of illustrationonly. One skilled in the art will readily recognize from the followingdiscussion that alternative embodiments of the systems and methodsillustrated herein may be employed without departing from the principlesof the invention described herein.

DETAILED DESCRIPTION Overview

The embodiments described herein relate to, inter alia, methods andsystems for performing environmental matching, and more specifically,for identifying spatial environment matches for respective sets ofobservations in a plurality of data sets each corresponding to arespective agricultural field.

An agricultural analytics (i.e., agrilytics) company may enable thecomparison of multiple agricultural fields, or multiplesegments/environments of a one or more agricultural fields. For example,the agrilytics company may conduct a trial wherein the agrilyticscompany compares plurality of fields/areas planted with a plurality ofrespective hybrids (e.g., a hybrid A and a hybrid B). The techniquesdiscussed herein allow the agrilytics company to compare trial products(e.g., the two hybrids A and B) at a finer level than conventionaltechniques have previously allowed. In another example, a field (e.g.,an agricultural field) may include one or more environments. Theagrilytics company may isolate one or more environments at the fieldlevel and compare those environments to one or more environments of thefield or second field to gain more accurate and complete information ofthe state of the field and the second field, including the respectiveone or more environments therein.

The agrilytics company may employ a method of and/or provide anenvironmental matching system for, collecting a set of underlyingenvironmental characteristics corresponding to a first environment. Theunderlying environmental characteristics may be referred to as aplurality of attributes in some embodiments. The underlyingenvironmental characteristics corresponding to the first environment mayinclude, for example, measurement data such as soil organic matter (OM),cation-exchange capacity (CEC), elevation, slope, topographicattributes, etc. The environmental matching method/system may collect asecond set of environmental characteristics corresponding to a secondenvironment. The environmental matching method/system may compare thefirst set of environmental characteristics to the second set ofenvironmental characteristics to determine the similarity of the firstenvironment to the second environment.

In some embodiments, the first set of underlying environmentalcharacteristics may be structured as a set of observations. Theobservations may be collected by, for example, an implement (e.g., atractor), an attachment to the implement (e.g., tillage equipment),and/or one or more sensors coupled to the implement and/or theattachment. In some embodiments, the sensor may be a part of and/orcoupled to, a mobile computing device of an operator (e.g., an operatorof the implement). By comparing underlying environmentalcharacterizations, the present techniques allow the agrilytics companyor another party to identify similarities between environments, and tocompare one or more (e.g., each) observation in the first environment toone or more (e.g., each) observation in the second environment. Thepresent techniques may use the comparison to, for example, determine thesimilarity of a first field to another field, to determine most similaror like environments, to compare the effects of treatments (e.g., afertilization treatment, a pesticide treatment, etc.), and/or the effectof different plantings (e.g., one or more seed varieties).

In yet another embodiment, the present techniques may be used to compareone or more environmental aspects of a first geography (e.g., a field,an environment, etc.) to one or more environmental aspects of a secondgeography (e.g., a second field, a second environment, etc.). Forexample, a first geography may relate to the planting of a seed hybridin a field located the State of Illinois. The present techniques maycollect first environmental characteristics relating to the Illinoisfield. A second geography may relate to a field in the State of Indiana.The present techniques may be used to collect a first set ofobservations relating to the Illinois field and a second set ofobservations relating to the Indiana field. The present techniques maybe used to match one or more locations in the Illinois field to one ormore locations in the Indiana field using the respective underlyingenvironmental characteristics of the two fields. For example, inaddition to, or alternatively to the above-referenced underlyingenvironmental characteristics, the two fields may be compared on thebasis of precipitation patterns, solar radiation levels,evapotranspiration rates, etc. Of course, in some embodiments, more thantwo fields may be compared.

The present techniques may analyze different groups or sets ofunderlying environmental characteristics, depending on the outcome beinganalyzed/predicted and/or the type of trial. In other words, the presenttechniques may be applied on a site-specific basis. For example, anenvironmental matching algorithm may analyze a first set of underlyingenvironmental characteristics in a trial of a nitrogen fertilizer.

The environmental matching algorithm may analyze a second set ofunderlying environmental characteristics in a trial of a seed hybrid. Instill further embodiments, a third set of underlying environmentalcharacteristics may be analyzed for a first geographic region and afourth set of underlying environmental characteristics may be analyzedfor a second geographic region. For example, each of the sets ofunderlying environmental characteristics may include a unique set ofunderlying environmental characteristics selected from a global list ofunderlying environmental characteristics. The global list of underlyingenvironmental characteristics and the respective sets of underlyingenvironmental characteristics may be stored in an electronic databaseand accessed using a unique identifier.

The present techniques include methods and systems for collectingmachine data and for analyzing the machine data to compare environmentsbetween a plurality of geographic locations. In some embodiments, thepresent techniques may generate one or more spatial data files encodedin a suitable file format, such as a commercial or open sourceshapefile, a GeoJSON format, a Geography Markup Language (GML) file,etc. Such spatial data files may include one or more layers (i.e., maplayers, wherein each layer represents an agricultural characteristic.For example, elevation may be represented by one or more layer within ashapefile. The individual layer(s) and/or files may be shared betweenmultiple computing devices of an agricultural company, provided or soldto customers, stored in a database, etc.

The present environmental matching techniques may be used for anysuitable purpose, including but not limited to use as an input to apredictive model, for seeding purposes, for tillage, etc.

Exemplary Computing Environment

FIG. 1 depicts an exemplary computing environment 100 in which thetechniques disclosed herein may be implemented, according to anembodiment.

The environment 100 includes a client computing device 102, an implement104, a remote computing device 106, and a network 108. Some embodimentsmay include a plurality of client computing devices 102, a plurality ofimplements, and/or a plurality of remote computing devices 106. Multipleand/or separate networks may communicatively couple different componentsof the environment 100, such as the client computing device 102 and theimplement 104, and/or the client computing device 102 and the remotecomputing device 106.

The client computing device 102 may be an individual server, a group(e.g., cluster) of multiple servers, or another suitable type ofcomputing device or system (e.g., a collection of computing resources).For example, the client computing device 102 may be a mobile computingdevice (e.g., a server, a mobile computing device, a smart phone, atablet, a laptop, a wearable device, etc.). In some embodiments theclient computing device 102 may be a personal portable device of a user.In some embodiments the client computing device 102 may be temporarilyor permanently affixed to the implement 102. For example, the clientcomputing device 102 may be the property of a customer, an agriculturalanalytics (or “agrilytics”) company, an implement manufacturer, etc.

The client computing device 102 includes a processor 110, a memory 112and a network interface controller (NIC) 114. The processor 110 mayinclude any suitable number of processors and/or processor types, suchas CPUs and one or more graphics processing units (GPUs). Generally, theprocessor 110 is configured to execute software instructions stored in amemory 112. The memory 112 may include one or more persistent memories(e.g., a hard drive/solid state memory) and stores one or more set ofcomputer executable instructions/modules, including a data collectionmodule 116, a mobile application module 118, and an implement controlmodule 120, as described in more detail below. More or fewer modules maybe included in some embodiments. The NIC 114 may include any suitablenetwork interface controller(s), such as wired/wireless controllers(e.g., Ethernet controllers), and facilitate bidirectional/multiplexednetworking over the network 108 between the client computing device 102and other components of the environment 100 (e.g., another clientcomputing device 102, the implement 104, the remote computing device106, etc.).

The one or more modules stored in the memory 112 may include respectivesets of computer-executable instructions implementing specificfunctionality. For example, in an embodiment, the data collection module116 includes a set of computer-executable instructions for collecting amachine data set from an implement (e.g., the implement 104). Themachine data collection module 116 may include a respective set ofinstructions for retrieving/receiving data from a plurality of differentimplements. For example, a first set of instructions may be configuredto retrieve/receive machine data from a first tractor manufacturer,while a second set of instructions is for retrieving/receiving machinedata from a second tractor manufacturer. In another embodiment, thefirst and second set of instructions may be for, respectively,receiving/retrieving data from tillage equipment and/or a harvester. Ofcourse, some libraries of instructions may be provided by themanufacturers of various implements and/or attachments, and may beloaded into the memory 112 and used by the data collection module 116.The data collection module 116 may retrieve/receive machine data from aseparate hardware device (e.g., a client computing device 102 that ispart of the implement 104) or directly from one or more of the sensorsof the implement 104 and/or one or more of the attachments 130 coupledto the implement 104, if any.

The machine data may include any information generated by the clientcomputing device 102, the implement 104, and/or the attachments 130. Forexample, the machine data may include sensor measurements of engine loaddata, fuel burn data, draft, fuel consumption, wheel slippage, etc. Themachine data may include application/treatment rates and a geographicidentifier (e.g., one or more location coordinates). The machine datamay include one or more time series, such that one or more measuredvalues are represented in a single data set at a common interval (e.g.,one-second). For example, the machine data may include a first timeseries of fertilizer application rate at a one-second interval, a secondtime series of seed application, etc. The machine data islocation-aware. For example, the client computing device 102 may addlocation metadata to the machine data, such that the machine datareflects an absolute and/or relative geographical position (i.e.,location, coordinate, offset, heading, etc.) of the client computingdevice 102, the implement 104, and/or the attachments 130 within theagricultural field at the precise moment that the client computingdevice 102 captures the machine data. It will also be appreciated bythose of skill in the art that some sensors and/or agriculturalequipment may generate machine data that is received by the clientcomputing device 102 that already includes location metadata added bythe sensors and/or agricultural equipment. In an embodiment wherein themachine data comprises a time series, each value of the time series mayinclude a respective geographic metadata entry.

The data collection module 116 may receive and/or retrieve the machinedata via an API through a direct hardware interface (e.g., via one ormore wires) and/or via a network interface (e.g., via the network 108).The data collection module 116 may collect (e.g., pull the machine datafrom a data source and/or receive machine data pushed by a data source)at a predetermined time interval. The time interval may be of anysuitable duration (e.g., once per second, once or twice per minute,every 10 minutes, etc.). The time interval may be short, in someembodiments (e.g., once every 10 milliseconds). The data collectionmodule 116 may include instructions for modifying and/or storing themachine data. For example, the data collection module 116 may parse theraw machine data into a data structure. The data collection module 116may write the raw machine data onto a disk (e.g., a hard drive in thememory 112). In some embodiments, the data collection module 116 maytransfer the raw machine data, or modified machine data, to a remotecomputing system/device, such as the remote computing device 106. Thetransfer may, in some embodiments, take the form of an SQL insertcommand. In effect, the data collection module 116 performs the functionof receiving, processing, storing, and/or transmitting the machine data.In some embodiments, the data collection module 116 may retrieve anidentifier (e.g., a treatment identifier, a trial identifier, etc.) fromanother module. The data collection module 116 may merge the identifierinto the machine data, and associate the identifier with the collectedmachine data.

The mobile application module 118 may include computer-executableinstructions that display one or more graphical user interfaces (GUIs)on the output device 124 and/or receives user input via the input device122. For example, the mobile application module 118 may correspond to amobile computing application (e.g., an Android, iPhone, or other)computing application of an agrilytics company. The mobile computingapplication may be a specialized application corresponding to the typeof computing device embodied by the client computing device 102. Forexample, in embodiments where the client computing device 102 is amobile phone, the mobile application module 118 may correspond to amobile application downloaded for iPhone. When the client computingdevice 102 is a tablet, the mobile application module 118 may correspondto an application with tablet-specific features. Exemplary GUIs that maybe displayed by the mobile application module 118, and with the user mayinteract, are discussed below. The mobile application module 118 mayinclude instructions for receiving/retrieving mobile application datafrom the remote computing device 106. In particular, the mobileapplication module 118 may include instructions for transmittinguser-provided login credentials, receiving an indication ofsuccessful/unsuccessful authentication, and other functions related tothe user's operation of the mobile application. The mobile applicationmodule 118 may include instructions for receiving/retrieving, rendering,and displaying visual maps in a GUI. Specifically, the applicationmodule 118 may include computer-executable instructions for displayingone or more map layers in the of the client computing device 102. Forexample, the map layers may be used to depict comparisons of one or morefields generated using the environmental matching algorithm of thepresent techniques.

The implement control module 120 includes computer-executableinstructions for controlling the operation of an implement (e.g., theimplement 104) and/or the attachments 130. The implement control module120 may control the implement 104 while the implement 104 and/orattachments 130 are in motion (e.g., while the implement 104 and/orattachments 130 are being used in a farming capacity). For example, theimplement control module 120 may include an instruction that, whenexecuted by the processor 110 of the client computing device 102, causesthe implement 104 to accelerate or decelerate. In some embodiments, theimplement control module 120 may cause one of the attachments 130 toraise or lower the disc arm of tillage equipment, or to apply more orless downward or upward pressure on the ground. Practically, theimplement control module 120 has all of the control of the implement 104and/or attachments 130 as does the human operator. The implement controlmodule 120 may include a respective set of instructions for controllinga plurality of implements. For example, a first set of instructions maybe configured to control an implement of a first tractor manufacturer,while a second set of instructions is configured to control an implementof a second tractor manufacturer.

In another embodiment, the first and second set of instructions may beconfigured to control, respectively, tillage equipment and/or aharvester. Of course, many configurations and uses are envisioned beyondthose provided by way of example. The control module 120 may includecomputer-executable instructions for executing one or more agriculturalprescriptions with respect to a field. For example, the control module120 may execute an agricultural prescription that specifies, for a givenagricultural field, a path for the implement 104 to follow within thefield, and an varying application rate of a chemical (e.g., afertilizer, an herbicide, a pesticide, etc.) or a seed to apply atvarious points along the path. The control module 120 may analyze thecurrent location of the implement 104 and/or the attachments 130 inreal-time (i.e., as the control module 120 executes the agriculturalprescription). The computer-executable instructions for executing theone or more agricultural prescriptions may be based on comparisonsgenerated by the environmental matching algorithm. In some embodiments,the computer-executable instructions may directly analyze the output ofthe environmental matching algorithm to determine one or more actionsfor the implement 104 to take.

In some embodiments, one or more components of the computing device 102may be embodied by one or more virtual instances (e.g., a cloud-basedvirtualization service). In such cases, one or more client computingdevice 102 may be included in a remote data center (e.g., a cloudcomputing environment, a public cloud, a private cloud, etc.). Forexample, a remote data storage module (not depicted) may remotely storedata received/retrieved by the computing device 102. The clientcomputing device 102 may be configured to communicate bidirectionallyvia the network 108 with the implement 104 and/or an attachments 130that may be coupled to the implement 104. The implement 104 and/or theattachments 130 may be configured for bidirectional communication withthe client computing device 102 via the network 108.

The client computing device 102 may receive/retrieve data (e.g., machinedata) from the implement 104, and/or the client computing device 102 maytransmit data (e.g., instructions) to the implement 104. The clientcomputing device 102 may receive/retrieve data (e.g., machine data) fromthe attachments 130, and/or may transmit data (e.g., instructions) tothe attachments 130. The implement 104 and the attachments 130 will nowbe described in further detail.

The implement 104 may be any suitable powered or unpoweredequipment/machine or machinery, including without limitation: a tractor,a combine, a cultivator, a cultipacker, a plow, a harrow, a stripper,tillage equipment, a planter, a baler, a sprayer, an irrigator, asorter, an harvester, etc. The implement 104 may include one or moresensors (not depicted) and the implement 104 may be coupled to one ormore attachments 130. For example, the implement 104 may include one ormore sensors for measuring respective implement values of liquidapplication rate, seed application rate, engine load data, fuel burndata, draft sensing, fuel consumption, wheel slippage, etc. Manyembodiments including more or fewer sensors measuring more or fewerimplement values are envisioned. The implement 104 may be a gas/diesel,electric, or hybrid vehicle operated by a human operator and/orautonomously (e.g., as an autonomous/driverless agricultural vehicle).

The attachments 130 may be any suitable powered or unpoweredequipment/machinery permanently or temporarily affixed/attached to theimplement 104 by, for example, a hitch, yoke or other suitablemechanism. The attachments 130 may include any of the types of equipmentthat the implement 104 may comprise (e.g., tillage equipment). Theattachments 130 may include one or more sensors (not depicted) that maydiffer in number and/or type according to the respective type of theattachments 130 and the particular embodiment/scenario. For example,tillage attachments 130 may include one or more soil depth sensors. Itshould be appreciated that many attachments 130 sensor configurationsare envisioned. For example, the attachments 130 may include one or morecameras. The attachments 130 may be connected to the implement 104 viawires or wirelessly, for both control and communications. For example,attachments 130 may be coupled to the client computing device 102 of theimplement 104 via a wired and/or wireless interface for datatransmission (e.g., cellular data via 4G/5G, IEEE 802.11, WiFi, etc.)and main/auxiliary control (e.g., 7-pin, 4-pin, etc.). The clientcomputing device 102 may communicate bidirectionally (i.e., transmitdata to, and/or receive data from) with the remote computing device 106via the network 108.

The client computing device 102 includes an input device 122 and anoutput device 124. The input device 122 may include any suitable deviceor devices for receiving input, such as one or more microphone, one ormore camera, a hardware keyboard, a hardware mouse, a capacitive touchscreen, etc. The output device 124 may include any suitable device forconveying output, such as a hardware speaker, a computer monitor, atouch screen, etc. In some cases, the input device 122 and the outputdevice 124 may be integrated into a single device, such as a touchscreen device that accepts user input and displays output. The clientcomputing device 102 may be associated with (e.g., leased, owned, and/oroperated by) an agrilytics company.

The network 108 may be a single communication network, or may includemultiple communication networks of one or more types (e.g., one or morewired and/or wireless local area networks (LANs), and/or one or morewired and/or wireless wide area networks (WANs) such as the Internet).The network 108 may enable bidirectional communication between theclient computing device 102 and the remote computing device 106, orbetween multiple client computing devices 102, for example.

The remote computing device 106 includes a processor 140, a memory 142,and a NIC 144. The processor 140 may include any suitable number ofprocessors and/or processor types, such as CPUs and one or more graphicsprocessing units (GPUs). Generally, the processor 140 is configured toexecute software instructions stored in the memory 142. The memory 142may include one or more persistent memories (e.g., a hard drive/solidstate memory) and stores one or more set of computer executableinstructions/modules, as discussed below. For example, the remotecomputing device 106 may include a data processing module 150, atopographic module 152, a characteristics module 154, a matching module156, a trial module 158, and an API module 160. The NIC 144 may includeany suitable network interface controller(s), such as wired/wirelesscontrollers (e.g., Ethernet controllers), and facilitatebidirectional/multiplexed networking over the network 106 between theremote computing device 106 and other components of the environment 100(e.g., another remote computing device 106, the client computing device102, etc.).

The one or more modules stored in the memory 142 may include respectivesets of computer-executable instructions implementing specificfunctionality. For example, in an embodiment, the data processing module150 includes computer-executable instructions for receiving/retrievingdata from the client computing device 102, the implement 104, and/or theattachments 130. For example, the data processing module 150 may includeinstructions that when executed by the processor 140, cause the remotecomputing device 106 to receive/retrieve machine data. The dataprocessing module 150 may include further instructions for storing themachine data in one or more tables of the database 180. The dataprocessing module 150 may store raw machine data, or processed data. Thedata processing module 150 may include instructions for processing theraw machine data to generate processed data. For example, the processeddata may be data that is represented using data types data of aprogramming language (e.g., R, C#, Python, JavaScript, etc.).

The data processing module 150 may include instructions for validatingthe data types present in the processed data. For example, the dataprocessing module 150 may verify that a value is present (i.e., notnull) and is within a particular range or of a given size/structure. Insome embodiments, the data processing module 150 may transmit processeddata to/from an electronic database in response to a query, or request,from the client computing device 102. The data processing module 150 maytransmit the processed data via HTTP or via another data transfersuitable protocol. In some embodiments, the data processing module 150may transform data received from the data collection module 116 of theclient computing device 102. For example, the data processing module 150may transform raw machine data into a spatial data format.

The topographic module 152 may include instructions for analyzing rawmachine data and computing topographic data attributes. For example, thetopographic module 152 may be configured to generate relative elevationand slope/soil wetness index (SWI) data based on raw machine data. Thetopographic module 152 may store topographic data attributes in anelectronic database. The topographic module 152 may be configured toretrieve and/or provide topographic data to other modules in the remotecomputing device 106. The topographic data may take the form of raw data(e.g., a list of geographic coordinates and elevation in feet above sealevel) or more complex data, such as an elevation map layer/spatial datafile. The topographic module 152 may source elevation data from publicsources, such as the United States Geological Survey (USGS) NationalElevation Dataset (NED) database, LiDAR data available via state/countygeospatial data clearinghouses, etc. In some embodiments, the dataprocessing module 150 may provide raw data to the topographic module152, wherein instructions within the topographic module 152 infer theelevation of a particular plot of land by analyzing the raw data. Theelevation data may be stored in a two-dimensional (2D) orthree-dimensional (3D) data format, depending on the embodiment andscenario.

The topographic module 152 may include computer-executable instructionsfor generating one or more map layers and/or one or more geospatial datafiles (e.g., shapefiles). The topographic module 152 may store thegenerated map layers and/or geospatial files in an electronic database,and/or in the memory 142. The topographic module 152 may provide thegeospatial files and/or map layers to other components of theenvironment 100, such as the client computing device 102. Specifically,the topographic module 152 may include an API endpoint that allowsanother application/module (e.g., the mobile application module 118 tosubmit a query/request to receive/retrieve one or more geospatial filesand/or one or more map layers via the network 108. It will beappreciated by those of skill in the art that the topographic module 152may use existing standardized and/or proprietary software libraries togenerate the maps and/or shape files. Further, the topographic module152 may combine one or more data sets from an electronic database into asingle map layer/geospatial file, or into multiple respective maplayers. For example, the topographic module 152 may generate a compositegeospatial data file that includes a first map layer representing a setof attributes belonging to a first field, and a second map layerrepresenting a set of attributes belonging to a second field. Thetopographic module 152 may also generate multiple layers, wherein eachcorresponds to an underlying environmental attribute (e.g., a slopelayer, an OM layer, a CEC layer, etc.). The layers may be transmitted toand displayed in user devices (e.g., the mobile computing device 102).

The characteristics module 154 may store, retrieve, sort and refine aglobal list of underlying environmental characteristics. For example,the characteristics may include information such as soil organic mattercation-exchange capacity, relative elevation, slope, topographicattributes, precipitation patterns, solar radiation levels,evapotranspiration rates, etc. Those of ordinary skill in the art willappreciate that the characteristics provided as examples are a subset ofthe global list of underlying environmental characteristics, and the useof more characteristics is envisioned. The underlying environmentalcharacteristics may be simple or compound.

The matching module 156 may include one or more matching algorithms, asdescribed below. For example, the matching module may use an algorithmfor determining the underlying characteristics that are most germane topredicting a particular outcome or for comparing a plurality ofagricultural segments (e.g., two or more fields and/or a plurality ofsub-parts of two or more fields). Herein, an “area” may refer to one ormore field and/or one or more sub-part of a field. For example, thematching module 156 may use a random forest tree classifier, apartial-least-squares (PLS) regression to determine the set ofcharacteristics used for analyzing a particular agricultural operationand/or for a particular type of trial.

For example, the random forest tree may indicate the use of a first setof underlying environmental attributes for analyzing a corn hybridtrial. The random forest tree may indicate the use of a second set ofunderlying environmental attributes for analyzing a fungicide trial. Therandom forest tree may indicate the use of a third set of underlyingenvironmental attributes for analyzing a seeding rate trial. The randomforest tree may indicate the use of a fourth set of underlyingenvironmental attributes for analyzing nitrogen application. Thematching module 156 may compare a plurality of environments, whereineach environment is compared to the other by generating a matrix.Comparing each of the plurality of environments to each of the otherplurality of environments may include calculating a match/no matchindication for every spatial point within the plurality of environments.

Given a first point in the first environment (e.g., a first field or afirst spatial portion of the first field), the matching module 156 maycompare the first point to every point in a second environment (e.g., asecond field, a second spatial portion of the first field, or a secondspatial portion). In some embodiments, a cutoff is used to determinewhether two compared points are matches or not. Each point within theenvironments compared by the matching module 156 may be part of ahexagrid, as discussed below.

In some embodiments, the matching module 156 may use a random forestalgorithm to identify attributes that are responsible for variation. Therandom forest classifier may identify variables of importance (e.g.,relative elevation, SWI, OM, soil test phosphorus, etc.). A user mayapply the output of the random forest algorithm to tune the variables ofa field, such as by varying the level of a treatment to address thevariable of importance. In another embodiment, the matching module 156may analyze the underlying environmental characteristics using a PLS.

In some embodiments, the matching module 156 may be configured as asite-specific environmental matching algorithm that analyzessite-specific environmental attributes, such as soil attributesincluding organic matter, CEC, phosphorus, and/or potassium. Thesite-specific environmental matching algorithm may further analyzetopography (e.g., relative elevation, SWI, etc.), derived layers (e.g.,nitrogen loss by landscape position), yield, and/or imagery. It shouldbe understood that many additional attributes may be analyzed by thesite-specific and macro embodiments of the environmental matchingalgorithm. The site-specific and macro embodiments of the environmentalmatching algorithm may analyze the above-described attributes formatching.

Those of skill in the art will appreciate that in some embodiments,other types of machine learning models/algorithms may be selected. Forexample, embodiments may use supervised and unsupervised machinelearning techniques, including classification, regression, clustering,dimensionality reduction (e.g., autoencoding), support vector machines,Bayesian networks, and/or neural networks (e.g., deep artificial neuralnetworks, convolutional neural networks, etc.).

The environmental matching module 156 may load a series of packages,depending on the programming language(s) used to implement theenvironmental matching algorithm. For example, embodiments may include apackage for reading/writing to a shapefile, a package for performingspatial data analysis and modeling, a package for generating rasterimages, etc. The environmental matching module 156 may analyzeas-planted data. The environmental matching module 156 may compute aninverted variance-covariance matrix for a plurality of attributes.

The environmental matching module 156 may perform a head-to-headcomparison between the plurality of products by retrieving datacorresponding to each product, counting the number of treatments, andfor each treatment, retrieving data corresponding to each treatment. Theenvironmental matching module 156 may compare each treatment to everyother treatment. The environmental matching module 156 may compare everyobservation within a first treatment to be compared to each observationin a second treatment.

In some embodiments, the environmental matching module 156 may determinethe distance between a first spatial point and a population of spatialpoints using a generalized spatial distance function defined as:

D ²=(x−u)^(T)Σ⁻¹(x−u)

wherein D² is the generalized distance, x is the matrix of attributesfor the population of spatial locations, u is the vector of attributesfor the spatial location to which matches are being sought; and Σ⁻¹ isthe inverted variance-covariance matrix of the attributes used to definethe environmental characteristics. The generalized distance D² isunit-less and scale-invariant. In some embodiments, the environmentalmatching module 156 may compute the distance of each observation using aMahalanobis distance function.

When determining whether two spatial regions match, the environmentalmatching module 156 may apply a predetermined threshold value. Thethreshold value may be determined by a machine learning algorithm, insome embodiments. For example, a machine learning module may derive thethreshold by analyzing a distribution of an entire field and respectivemachine data. The environmental matching module 156 may determine thatany point having a respective environmental value greater than thepredetermined threshold value is a match. The environmental matchingmodule 156 may apply different matching algorithms, depending on theembodiment and scenario, as discussed below.

The trial module 158 may store information related to agricultural fieldtrials. The trial module 158 may assist in the direction of agriculturalfield trials. For example, the trial module 158 may receive a requestfrom a client device (e.g., the client computing device 102) including atrial record object. The trial record object may include itemsidentifying a trial, including a trial name, a trial date, one or moreplanting locations (e.g., one or more area), one or more trial products(e.g., a crop seed hybrid, a fertilizer, a fungicide, etc.). Each of theone or more planting locations may be associated with one or morerespective trial products. The trial module 158 may store one or moretrial record objects in an electronic database.

The trial module 158 may allow a user to access the stored trials, forexample, by viewing a list of stored trials. The user may select one ofthe trials using the mobile application 118. For example, the user mayaccess the input device 122 (e.g., via key press) to begin a trial. Oncebegun, the trial module 158 may store the start time of the trial in theelectronic database. The mobile application 118 may include instructionsfor updating the trial based on the location of the implement 104. Forexample, the mobile application module 118 may include instructionsthat, when executed, cause the mobile application module 118 to receivethe position (e.g., from a GPS module) of the implement 104. Theinstructions may further cause the mobile application 118 to determinewhether the implement 104 is within an area (e.g., a field and/or asub-field) that corresponds to one of the trial record objects. When theimplement is within the area that corresponds to one of the trial recordobjects, the mobile application 118 may automatically begin recordingdata corresponding to the trial record object, and/or display anotification to the user (e.g., via the output device 124) prompting theuser to begin storing data related to the trial. The prompt may includeinformation related to the trial (e.g., the trial name).

The API module 160 may be used to access the results of theenvironmental matching. For example, an agrilytics company may provideaccess to the API module 160 to a customer. The customer may collectenvironmental data and access the API, providing the collectedenvironmental data as one or more input parameters. The API module 160may return results that include one or more comparisons (e.g.,environmental matching analyses) of the environmental data, as describedherein. The environmental matching system provides the customer with atrue spatial analysis of agricultural trial information, in a far moredetailed and comprehensive way than conventional techniques.

In still further embodiments, the environmental matching system mayinclude instructions for analyzing results generated by comparing theenvironmental characteristics of multiple geographic, field-based and/orfield environments to generate one or more recommendations. Therecommendations may be integrated by the API module 160. For example,the API user may submit environmental data via an API of the API module160 in a first API call. The API user may then submit a second API call,or receive a result of the first API call, wherein the API user receivesfeedback regarding one or more interventions that may be needed toagricultural aspects of the API user's field. The environmental matchingsystem (e.g., the environment 100) may, in some embodiments, provide theAPI user with geographic comparisons.

For example, the present environmental matching techniques may enablethe grower to improve yield by adjusting seed, fertilizer, etc. based onhistorical or time-based growing season (e.g., year-over-year) analyses.In a first growing season, the grower may analyze the yield of a firstfield/environment. The grower may compare the performance of an aspectof the first field/environment. Some of the comparisons may be subjectto intervention-level effects. For example, in a fungicide trial, thefungicide may work well in a first year but not in a second year. Inparticular, the environmental matching system enables the user (e.g., ananalyst, an agrilytics company advisor, an independent grower, etc.) topartition environments and eliminate “yoyo” effects. Whereasenvironmental variation is typically lost through field-level averaging,the present techniques allow the user to determine and process (e.g.,visualize) the changes occurring to environments in multiple dimensions.

The remote computing device 106 may further include one or more database180, an input device 182, and an output device 184. The database 180 maybe implemented as a relational database management system (RDBMS) insome embodiments. For example, the data store 140 may include one ormore structured query language (SQL) database, a NoSQL database, a flatfile storage system, or any other suitable data storagesystem/configuration. In general, the database 180 allows the clientcomputing device 102 and/or the remote computing device 106 to create,retrieve, update, and/or retrieve records relating to performance of thetechniques herein. For example, the database 180 may allow the clientcomputing device 102 to store information received from one or moresensors of the implement 104 and/or the attachments 140.

The database 180 may store information received from users, via theinput device 122 of the client computing device 102 and/or via the inputdevice 182 of the remote computing device 106. The database 180 may beconfigured for the storage and retrieval of spatial data, in someembodiments. The client computing device 102 may include a module (notdepicted) including a set of instructions for querying an RDBMS, spatialdata, etc. For example, the client computing device 102 may include aset of database drivers for accessing the database 180 of the remotecomputing device 106. In some embodiments, the database 180 may belocated remotely from the remote computing device 104, in which case theremote computing device 104 may access the database 180 via the NIC 112and the network 106.

The input device 182 may include any suitable device or devices forreceiving input, such as one or more microphone, one or more camera, ahardware keyboard, a hardware mouse, a capacitive touch screen, etc. Theinput device 182 may allow a user (e.g., a system administrator) toenter commands and/or input into the remote computing device 106, and toview the result of any such commands/input in the output device 184.

The output device 184 may include any suitable device for conveyingoutput, such as a hardware speaker, a computer monitor, a touch screen,etc. The remote computing device 106 may be associated with (e.g.,leased, owned, and/or operated by) an agrilytics company. As notedabove, the remote computing device 106 may be implemented using one ormore virtualization and/or cloud computing services. One or moreapplication programming interfaces (APIs) may be accessible by theremote computing device 106.

Exemplary Embodiments For Use Within an Agricultural Field

FIG. 2 depicts an exemplary environment 200 of an agricultural field 202including an implement 204 having one or more attachments. Theimplement/attachments are performing one or more agriculturaloperations, or interventions, on the agricultural field 202, wherein theagricultural field 202 is transected by a swath 206 created by thecourse/direction and action (e.g., tillage, seeding, etc.) of theimplement 204. The agricultural field 202 may include one or more cropplanted in cultivated rows, vines, or other arrangements. The implement204 may correspond to the implement 104 of FIG. 1, for example, and maybe communicatively coupled and/or physically coupled to one or moreattachments (e.g., the one or more attachments 130 of FIG. 1). Theagricultural field 202 may have a name and/or identifier that is storedin the database 180 of the remote computing device 106 to allow thevarious components of the environment 100 to reference the agriculturalfield 202. The agricultural field 202 may include area 208 and area 210.

The area 208 and the area 210 may both be part of the agricultural field202, or another field (not depicted). For example, in one embodiment, afield trial may include comparing the area 208 to the area 210, whereinthe area 208 and the area 210 are located in different fields (e.g., indifferent U.S. States).

In operation, the implement 204 may drive the agricultural field 202 inpasses parallel to the swath 206. The swath 206 may have a set widththat corresponds to the width of the one or more attachments. As theimplement 204 drives the agricultural field 202, the implement 204 mayinclude a client computing device (e.g., the client computing device 102of FIG. 1) that is permanently and/or temporarily installed in theimplement 104. The user (e.g., a farmer or other operator) may activatea logging program (e.g., the data collection module 116 of FIG. 1) usingan input device (e.g., an input device corresponding to the input device122 of FIG. 1) to initiate the collection of machine data from theimplement 104 and the one or more attachments as the user begins to farmthe agricultural field 202. The user may use the input device tonavigate various graphical user interfaces displayed by the mobileapplication module 118, as further described below, before, during andafter the farming of the agricultural field 202.

For example, once the user reaches the area 208, the implement 104 maycollect machine data corresponding to the area 208. The machine data maybe processed by the data collection module 116 and/or the dataprocessing module 150 (e.g., after the client computing device transmitssome or all of the machine data to the data processing module 150). Themachine data may be encoded in a spatial data format and furtherprocessed. For example, once machine data for the entire field 202 hasbeen collected, the field may be divided into hexagrid segments asdiscussed herein. The matching module 156 may select the hexagridslocated within the area 208 and the area 210 and compare them using thematching techniques described herein. Before performing the matching,the matching module 156 may obtain topographic information for thehexagrids within the area 208 and the area 210 from the topographicmodule 152 of FIG. 1.

In some embodiments, as the user farms the agricultural field 202 usingthe implement 204, the client computing device receives/retrieves themachine data either locally, in the memory of the client computingdevice, and/or transmits the machine data to a remote computing device(e.g., the remote computing device 106 of FIG. 1) via a network (e.g.,the network 108 of FIG. 1). In some embodiments, a module of the clientcomputing device (e.g., the mobile application module 118) may displaystatus information, such as raw machine data values, processed machinedata values, one or more visualizations corresponding to machine datavalues, engine time, and/or other information related to environmentalconditions, the condition of the implement/attachments, etc. that may beof interest to the operator (in non-autonomous embodiments). The datamay be displayed, for example, in an output device corresponding to theoutput device 124 of FIG. 1.

In some embodiments, as the user farms the agricultural field 202,and/or after the user has completed farming the agricultural field 202,the client computing device may transmit data stored in the memory ofthe client computing device to the remote computing device. The data maybe processed and/or stored remotely. For example, in some embodiments,as the user farms the agricultural field 202, the client computingdevice may receive/retrieve information from the remote computingdevice. The mobile application module may retrieve/receive a topographiclayer and display the topographic layer in the output device 124. Inthis way, as the user drives the implement 204 on the agricultural field202, the user is able to simultaneously view a map of the agriculturalfield 202 including a depiction of how similar the field 202 is toanother area.

In some embodiments, the matching module 156 computes a similarity ofthe field 202 (or a sub-section of the field 202) to another area.However, in some embodiments, the matching module 156 may be relocatedto the client computing device 102, so that some or all of theprocessing is offloaded from the remote computing device 106. Doing sois advantageous when network bandwidth is limited, or when low-latencyis desired to increase the data sampling/refresh rate. As noted above,the implement 204 may generate machine data at an interval, such as onceper second. The display of machine data, computed matches, etc. may besynchronized such that the display occurs at the same interval as themachine data collection. In this way, the user is able to see the newestinformation as it is collected.

The present techniques may be thought of supporting multiple modes forthe collection, processing, display, analysis and treatment ofagricultural processes. As discussed above, the implement 204 maycollect data, transmit data, and/or receive data. Therefore, the presenttechniques support embodiments wherein the implement 204 merely collectsdata for later processing and/or for real-time processing. For example,during the harvest of the agricultural field 202, a combine implementmay make a number of passes transecting the agricultural field 202,wherein the passes correspond to a plurality of swaths 206. Each of theswaths 206 may correspond to a plurality of machine data values. Thenumber of machine data samples within each of the swaths 206 may dependon the speed of the combine implement and the size/configuration of anysensors and/or attachments used to produce the machine data values. Insome embodiments, the plurality of swaths may be sub-sections of thefield 202, or multiple fields.

In some embodiments, a user may use the present techniques to gathermachine data relating to a portfolio including a plurality of fields.The user may do so with the intent of computing environmental matchingfor each of the respective fields, and/or for other purposes (e.g., forgenerating an agricultural prescription using the environmental matchinginformation).

For example, the agricultural field 202 may comprise a plurality ofswaths 206 each comprising a plurality of machine data values, orsamples. The remote computing device 106 may generate a matrix includingvalues corresponding to the plurality of machine data values and theplurality of swaths. Each of the points within the matrix may beassociated with metadata, as described below.

The present techniques support embodiments wherein the client computingdevice merely displays data. For example, as discussed, the clientcomputing device may merely display machine data to the user as themachine data is collected. In some embodiments, the client computingdevice may display previously-collected/processed data received from theremote computing device (e.g., a map layer, an agriculturalprescription, etc.). For example, the user may select the agriculturalfield 202 from a list of agricultural fields 202 in the client computingdevice, and a first implement 204 (e.g., the combine implement) via theclient computing device. The user may then drive the agricultural field202 using the first implement 204 to harvest the crop therein. As theuser is processing the agricultural field 202, and/or after the user hasfinished processing the field, the remote computing device 106 mayprocess the machine data collected during the processing.

The user may then drive the agricultural field 202 using a secondimplement 204 (e.g., a planter or tillage equipment). While the userdrives the agricultural field 202 using the second implement 204, theclient computing device may receive the processed data and display itfor the user in the output device 124. In this way, the user may beprovided with a view of a computed attribute of the machine data soonafter the user has processed the agricultural field 202.

Exemplary Hexagrid Field-Level Encoding

Internally, the client computing device 102 and the remote computingdevice 106 (and all modules comprising both) may represent theagricultural field 202 using a 2D hexagonal data structure (i.e., one ormore hexagrids). For example, the agricultural field 202 may berepresented in computer memory as a grid comprising a plurality ofn-meter hexagonal interlocking cells, wherein n is any positive integer.Using hexagonal grids to represent the agricultural field 202advantageously allows the data representation of the agricultural field202 to more efficiently tile irregularly-shaped fields in the computermemory. The swath 206 may similarly be represented using hexagrids. Allof the field-level data used by the present techniques may be encodedusing hexagrids, including without limitation machine data collected bythe client computing device 102, and elevation data, underlyingenvironmental characteristics, topographic data, and modeling dataprocessed/transmitted or otherwise facilitated by the remote computingdevice 106. In some embodiments, other geometric shapes (e.g., squares)may be used to represent the grid.

In some embodiments, a data processing module (e.g., the data processingmodule 150 of FIG. 1) may correlate the swaths driven by an implement(e.g., the swath 206) to the hexagrids. In this way, the machine datamay be assigned to a particular hexagrid. As noted above, interpolationmay be performed at the edges of each hexagrid to blend the machine datavalues to adjacent hexagrids and the enclosing boundaries of eachagricultural field. In this way, information corresponding to anindividual hexagrid can be displayed in a way that seamlessly conveys tothe user per-hexagrid values.

FIG. 3 depicts an exemplary environment 300. The environment 300includes an area 302 that may correspond to the area 208 of FIG. 2. Thearea 302 includes a magnified portion 304 that includes a plurality ofhexagrids 306. The plurality of hexagrids 306 may be arranged in alinear ordering such that adjacent cells are addressable in twodimensions (e.g., a first dimension n and a second dimension j). Eachhexagrid may be associated with a plurality of observations, each ofwhich corresponds to an underlying characteristic.

Exemplary Charts

The present techniques may be used to generate charts, such as theproduct performance chart 400 of FIG. 4. For example, the productperformance chart depicts yield in bushels per acre on the Y axis of thechart 400, and a multitude of different products on the X axis of thechart 400. In some embodiments, the values used to generate the chartare obtained using the present techniques. For example, theenvironmental matching methods and systems described herein may be usedto determine the matches in observations between a first trial andsecond trial. The determined matches may be analyzed further to createeach of the values along the X axis of the chart 400.

Exemplary Graphical User Interfaces

FIG. 5 depicts an exemplary graphical user interface 500 including afield of spatial points 502. The spatial points 502 are each encodedusing hexagrids, and the GUI 500 includes a detail point 504. The detailpoint 504 is shown to include a plurality of point data 506, comprisingpoint metadata and underlying environmental characteristics. The pointdata 506 includes a keys column 510 wherein each of the respective pointdata 506 are described, and a values column 512, wherein each of therespective keys in the keys column is associated with a value. Forexample, the organic matter (OM) key has a value of 2.35302. By usingthe GUI 500, the user is able to view and explore the plurality ofspatial points 502 within the field, and the respective underlyingenvironmental characteristics of each of the spatial points.

FIG. 6 depicts an exemplary GUI 600 including a field 602 thatcorrespond to the field depicted in the GUI 500. The field 602 includesa plurality of matching points 608 and a plurality of non-matchingpoints 604. A point 606 corresponds to the detail point 504. Thematching spatial points 608 are generated by the environmental matchingalgorithm, as described herein. The GUI 500 includes a match/no-matchindication 610. The GUI 500 and the GUI 600 allow the user to visuallyassess the points within the field 602 that are a match to another area.In FIG. 5, points may correspond to observations. For example, anobservation may be a single measurement of a value (e.g., CEC) at agiven point. For example, the GUI 500 and the GUI 600 may be displayedin a display device to a user (e.g., the output device 124 or the outputdevice 184).

In an embodiment, the present techniques include a multi-levelenvironmental characterization/matching algorithm. In some embodiments,the matching module 156 may match environments at a “macro” level. Forexample, the matching module 156 may analyze precipitation, solarradiation, and evapotranspiration over one or more portions of a growingseason, etc. with respect to a plurality of geographic regions/areasthat may be near or far. For example, a first region may correspond tothe field 202. A second region may correspond to a second field, locatedacross the road/lane or in another state. In another example, the firstregion and the second region correspond, respectively, to two regions ofa single field, as depicted in FIG. 2.

For example, the environmental matching module 156 may implement amethod to search a dataset to identify all potential matchingobservations. The matching observations may be those that correspond tothe performance of a particular hybrid or variety. The matchingobservations may be located across a broad geography. FIG. 7 depicts anexemplary environment 700 that includes a geography 704 including aplurality of matched points 706 and a plurality of unmatched points 708.The geography 704 may correspond to multiple fields, in someembodiments. In some embodiments, the geography 704 may correspond toone or more counties or states. FIG. 8 depicts an example environment800 that includes a geography including a plurality of matched points806 and a plurality of unmatched points 804. The geography maycorrespond to a single field, in some embodiments.

Exemplary Environmental Matching Methods

FIG. 9 depicts a flow diagram of an example method 900 for matching afirst set of observations in a first plurality of spatial points to asecond set of observations in a second plurality of spatial points usinga spatial distance function. In some embodiments, each of first set ofobservations corresponds to a respective one of the second set ofobservations.

For example, the spatial distance function may be defined asD²=(x−u)^(T)Σ⁻¹(x−u). The spatial distance function may determine thedistance between each point in the first set of observations and eachrespective point in the second set of observations. In some embodiments,the generalized distance D² is unit-less and scale-invariant.

For example, the first set of observations may correspond to a firstarea (e.g., a field or a sub-field). The second set of observations maycorrespond to a second area (e.g., a field or a sub-field). The firstset of observations and the second set of observations may correspond tothe same field. Each set of observations may correspond to a respectivepopulation of spatial locations/points (e.g., a set of spatial pointswithin a field).

The method 900 may include receiving the first set of observations andthe second set of observations (block 902). In some embodiments, themethod 900 may include receiving/retrieving the first set ofobservations and/or the second set of observations from the database 180of FIG. 1. In some embodiments, the first set of observations and/or thesecond set of observations may be provided/retrieved via an API (e.g.,by a customer accessing the API module 160). The method 900 may includean implement (e.g., the implement 104) collecting the first set ofspatial points/observations.

The method 900 may further include identifying a plurality of underlyingenvironmental characteristics of interest that spatially define theenvironment for the first set of observations and/or the second set ofobservations (block 904). For example, the method 900 may includeidentifying a plurality of defining underlying environmentalcharacteristics using a trained machine learning model (e.g., a randomforest tree classification algorithm), a partial-least-squaresalgorithm, etc.

With reference to the distance function, the method 900 may includecomputing the inverted variance-covariance matrix Σ−1 for the identifiedattributes of interest (block 906).

The method 900 may include computing the spatial distance function foreach observation in the first set of observations using the distributionof observations in the second set of observations (block 908). Forexample, in an embodiment, computing the spatial distance function D²for each observation in the first set of observations may includecomputing the spatial distance function for each observation in Xt usingthe distribution of observations in Xc, wherein Xt and Xc are defined,respectively, as observations corresponding to a treated area and anuntreated area. In a further example embodiment, identifying the set ofobservations may include identifying the observations that will comprisethe comparison of a plurality of areas Xi and Xj, wherein Xi and Xj aredefined, respectively, as observations corresponding to a first treatedarea and second treated area. It should be appreciated that thevariables i and j are minimal examples, and that multiple pairs of areasmay be compared. Alternatively, or in addition, a plurality of areas maybe compared.

In another embodiment, computing the spatial distance function for eachobservation in the set of observations may include computing the spatialdistance function D² for each observation in Xi using the distributionof observations in the set of observations X, wherein Xi is defined aseach observation in X.

The method 900 may include identifying the observations in the first setof observations that match the observations in the second set ofobservations (block 910).

Identifying the observations that match may include generating a set ofmatched observations. Identifying the observations may includeminimizing the spatial distance function D². Continuing the aboveexample, the method 900 may include identifying the set of attributes inX that match the set of observations in Xi by minimizing the spatialdistance function D². In another example, the method 900 may includeidentifying a set of matching observations in Xc that match theobservation in Xt by minimizing the spatial distance function.

For example, in one embodiment, identifying the observations in thefirst set of observations that match the observations in the second setof observations may include identifying a set of observations X over abroad geography that are environmentally matched (e.g., by theenvironmental matching module 156). In another example embodiment, thefirst set of observations and the second set of observations mayrespectively correspond to a first spatial trial and a second spatialtrial, and identifying the set of observations may include comparing therespective observations within the two trials. For example, the matchedobservations may correspond to the plurality of matched points 806 ofFIG. 8, the plurality of matched points of FIG. 7, the plurality ofmatching points 608 of FIG. 6, etc.

In some embodiments, the method 900 may further include flaggingobservations identified in the second set of observations for exclusionfrom further matching.

Once the method 900 has completed, the first set of observations mayinclude data reflecting a head-to-head matching of each observation inthe first set of observations with the second set of observations,according to the identified defining underlying environmentalcharacteristics.

It should be appreciated that the method 900 may be used in embodimentswherein the comparison between the first set of observations and thesecond set of observations is over a broad geography and/or within asingle field. The present techniques provide datapoint-level resolutionfor analysis, whereas conventional techniques merely compare entireswaths of a field, at best. Growers are able to base decisions oncomparisons between multiple areas, for purposes of planting, and whenapplying agricultural interventions of any kind (e.g., fertilization,application of fungicides/pesticides, irrigation, etc.).

In some embodiments, the method 900 may perform additional analysis onthe matched observations, such as by performing a mean difference, aregression, analyzing the matched observations using a randomcoefficient model, analyzing the matched observations using a randomforest tree, etc. The net result of such analyses may includeidentifying a treatment differences or a product performance in aspecific environment. For example, if the grower is able to view a plotof similar points between a plurality of fields (e.g., the matchingpoints 608), then the grower may be able to determine a successfulpractice that worked on a more successful field within the plurality offields.

In some embodiments the method 900 may quantify treatment effects.Specifically, the method 900 may determine a marginal effect by, forexample, determining how an outcome (e.g., yield) changes when atreatment changes. For example, the method 900 may determine that for aparticular percentage increase in fungicide, crop yield will increase byan amount for all areas that correspond to matched observations. In thisway, the present techniques may be used to predict treatment outcomesfor areas that are environmentally matched.

In some embodiments, computing D² for each observation may be performediteratively. In other embodiments, D² may be computed in different ways,such as recursively and/or using parallel computations (e.g., using oneor more GPUs). Using parallel computing algorithms and parallelprocessing hardware advantageously (e.g., linearly) increases thecomputational complexity of the present environmental matchingtechniques, allowing the present techniques to provide drasticallyimproved performance to internal and external (e.g., API) users ofagrilytics applications.

Additional Considerations

The following considerations also apply to the foregoing discussion.Throughout this specification, plural instances may implement operationsor structures described as a single instance. Although individualoperations of one or more methods are illustrated and described asseparate operations, one or more of the individual operations may beperformed concurrently, and nothing requires that the operations beperformed in the order illustrated. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

It should also be understood that, unless a term is expressly defined inthis patent using the sentence “As used herein, the term” “is herebydefined to mean . . . ” or a similar sentence, there is no intent tolimit the meaning of that term, either expressly or by implication,beyond its plain or ordinary meaning, and such term should not beinterpreted to be limited in scope based on any statement made in anysection of this patent (other than the language of the claims). To theextent that any term recited in the claims at the end of this patent isreferred to in this patent in a manner consistent with a single meaning,that is done for sake of clarity only so as to not confuse the reader,and it is not intended that such claim term be limited, by implicationor otherwise, to that single meaning. Finally, unless a claim element isdefined by reciting the word “means” and a function without the recitalof any structure, it is not intended that the scope of any claim elementbe interpreted based on the application of 35 U.S.C. § 112(f).

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting,” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or a combination thereof), registers, or othermachine components that receive, store, transmit, or displayinformation.

As used herein any reference to “one embodiment” or “an embodiment”means that a particular element, feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneembodiment. The appearances of the phrase “in one embodiment” in variousplaces in the specification are not necessarily all referring to thesame embodiment.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,method, article, or apparatus that comprises a list of elements is notnecessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus. Further, unless expressly stated to the contrary,“or” refers to an inclusive or and not to an exclusive or. For example,a condition A or B is satisfied by any one of the following: A is true(or present) and B is false (or not present), A is false (or notpresent) and B is true (or present), and both A and B are true (orpresent).

In addition, use of “a” or “an” is employed to describe elements andcomponents of the embodiments herein. This is done merely forconvenience and to give a general sense of the invention. Thisdescription should be read to include one or at least one and thesingular also includes the plural unless it is obvious that it is meantotherwise.

Upon reading this disclosure, those of skill in the art will appreciatestill additional alternative structural and functional designs forimplementing the concepts disclosed herein, through the principlesdisclosed herein. Thus, while particular embodiments and applicationshave been illustrated and described, it is to be understood that thedisclosed embodiments are not limited to the precise construction andcomponents disclosed herein. Various modifications, changes andvariations, which will be apparent to those skilled in the art, may bemade in the arrangement, operation and details of the method andapparatus disclosed herein without departing from the spirit and scopedefined in the appended claims.

What is claimed:
 1. A computer-implemented method for improved agricultural field information storage, comprising receiving raw machine data corresponding to a plurality of environments, each environment located within a respective agricultural field; determining, for each of the plurality of environments, respective topographic attributes and respective underlying environmental characteristics by processing the raw machine data; encoding, for each of the plurality of environments, the determined respective topographic attributes and the respective underlying environmental characteristics in one or more respective hexagrid data structures; and storing the one or more respective hexagrid data structures in one or more non-transitory computer-readable memories.
 2. The computer-implemented method of claim 1, further comprising: identifying a treatment difference or a product performance corresponding to one or more of the plurality of environments.
 3. The computer-implemented method of claim 1, further comprising: comparing one or more adjacent hexagrids by interpolating first machine data stored in at least one of the hexagrids with second machine data stored in a different at least one of the hexagrids.
 4. The computer-implemented method of claim 1, further comprising: displaying the one or more hexagrid data structures on a graphical user interface including one or more spatial points.
 5. The computer-implemented method of claim 4, further comprising: in response to a user selection of one of the spatial points, displaying one or more detail points on a graphical user interface, the detail points corresponding to the selected one of the spatial points.
 6. The computer-implemented method of claim 1, further comprising: determining one or more matching spatial points corresponding to the one or more hexagrid data structures using a spatial distance function; and displaying the one more matching points on a graphical user interface to allow a user to visually assess matching points.
 7. The computer-implemented method of claim 1, wherein determining, for each of the plurality of environments, the respective topographic attributes and respective underlying environmental characteristics by processing the raw machine data includes processing the raw machine data using a trained machine learning model.
 8. A computing system comprising: one or more processors; and one or more memories storing instructions that, when executed by the one or more processors, cause the computing system to: receive raw machine data corresponding to a plurality of environments, each environment located within a respective agricultural field; determine, for each of the plurality of environments, respective topographic attributes and respective underlying environmental characteristics by processing the raw machine data; encode, for each of the plurality of environments, the determined respective topographic attributes and the respective underlying environmental characteristics in one or more respective hexagrid data structures; and store the one or more respective hexagrid data structures in the one or more memories.
 9. The computing system of claim 8, the one or more memories including further instructions that, when executed by the one or more processors, cause the computing system to: identify a treatment difference or a product performance corresponding to one or more of the plurality of environments.
 10. The computing system of claim 8, the one or more memories including further instructions that, when executed by the one or more processors, cause the computing system to: compare one or more adjacent hexagrids by interpolating first machine data stored in at least one of the hexagrids with second machine data stored in a different at least one of the hexagrids.
 11. The computing system of claim 8, the one or more memories including further instructions that, when executed by the one or more processors, cause the computing system to: display the one or more hexagrid data structures on a graphical user interface including one or more spatial points.
 12. The computing system of claim 11, the one or more memories including further instructions that, when executed by the one or more processors, cause the computing system to: receive a user selection of one of the spatial points; and display one or more detail points on a graphical user interface, the detail points corresponding to the selected one of the spatial points.
 13. The computing system of claim 8, the one or more memories including further instructions that, when executed by the one or more processors, cause the computing system to: determine one or more matching spatial points corresponding to the one or more hexagrid data structures using a spatial distance function; and display the one more matching points on a graphical user interface to allow a user to visually assess matching points.
 14. The computing system of claim 8, the one or more memories including further instructions that, when executed by the one or more processors, cause the computing system to: process the raw machine data using a trained machine learning model
 15. A non-transitory computer readable medium containing program instructions that when executed, cause a computer to: receive raw machine data corresponding to a plurality of environments, each environment located within a respective agricultural field; determine, for each of the plurality of environments, respective topographic attributes and respective underlying environmental characteristics by processing the raw machine data; encode, for each of the plurality of environments, the determined respective topographic attributes and the respective underlying environmental characteristics in one or more respective hexagrid data structures; and store the one or more respective hexagrid data structures in one or more non-transitory computer-readable memories.
 16. The non-transitory computer readable medium of claim 15, containing further program instructions that when executed, cause a computer to: identify a treatment difference or a product performance corresponding to at least one of the plurality of environments.
 17. The non-transitory computer readable medium of claim 15, containing further program instructions that when executed, cause a computer to: compare one or more adjacent hexagrids by interpolating first machine data stored in at least one of the hexagrids with second machine data stored in a different at least one of the hexagrids.
 18. The non-transitory computer readable medium of claim 15, containing further program instructions that when executed, cause a computer to: display the one or more hexagrid data structures on a graphical user interface including one or more spatial points.
 19. The non-transitory computer readable medium of claim 18, containing further program instructions that when executed, cause a computer to: receive a user selection of one of the spatial points; and display one or more detail points on a graphical user interface, the detail points corresponding to the selected one of the spatial points.
 20. The non-transitory computer readable medium of claim 15, containing further program instructions that when executed, cause a computer to: determine one or more matching spatial points corresponding to the one or more hexagrid data structures using a spatial distance function; and display the one more matching points on a graphical user interface to allow a user to visually assess matching points. 